import org.junit.jupiter.api.Test;

public class _24_两两交换链表中的节点_递归实现 {


    @Test
    public void test(){


    }

    /**
     * 思路：每次移动两个节点，要是移动后不存在节点就结束
     * 要是存在一个节点的话，就直接指向这个节点
     * 存在两个节点就将我们设置的节点指向第二个节点，然后再指向第一个节点
     * @param head
     * @return
     */
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
//        ListNode newHead = head.next;
//        head.next = swapPairs(newHead.next);
//        newHead.next = head;
//        return newHead;
        ListNode newNode=head.next;
        head.next=swapPairs(newNode.next);
        newNode.next=head;
        return newNode;


    }

}
